package com.kinghood.productcenter.service.base;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kinghood.infrastructure.model.dto.StatusReqDTO;
import com.kinghood.productcenter.common.model.dao.base.BaseProductTemplateDO;
import com.kinghood.productcenter.common.model.dto.base.AddOrUpdateTemplateReqDTO;
import com.kinghood.productcenter.common.model.dto.base.ListTemplateQueryDTO;
import com.kinghood.productcenter.common.model.vo.product.ProductTemplateInfoVO;

import java.util.List;

/**
 * <p>
 * 基础选项-模板 服务类
 * </p>
 *
 * @author KingHood
 * @since 2023-12-20
 */
public interface IBaseProductTemplateService extends IService<BaseProductTemplateDO> {

    /**
     * 获取模板数据
     *
     * @param productTemplateId 模板id
     * @param style 是否用于款式详情
     * @return 模板数据
     * @author zfj
     * @date 2023/12/26
     */
    ProductTemplateInfoVO getProductTemplateById(Long productTemplateId, boolean style);

    /**
     * 保存模板
     *
     * @param in 入参
     * @return 模板数据
     * @author zfj
     * @date 2024/01/24
     */
    Long addTemplate(AddOrUpdateTemplateReqDTO in);

    /**
     * 修改模板
     *
     * @param in 模板数据
     * @return 模板id
     * @author zfj
     * @date 2024/01/24
     */
    Long updateTemplate(AddOrUpdateTemplateReqDTO in);

    /**
     * 模板下拉列
     *
     * @return 模板
     * @author zfj
     * @date 2024/01/26
     */
    List<BaseProductTemplateDO> getTemplateList();

    /**
     * 根据id删除
     *
     * @param id 身份证件
     * @return
     * @author jp
     * @date 2024/01/29 10:50
     */
    void delTemplate(Long id);

    /**
     * 更新模版状态
     *
     * @param param 参数
     * @return
     * @author jp
     * @date 2024/01/29 10:55
     */
    void updateTemplateStatus(StatusReqDTO param);

    /**
     * 分页
     *
     * @param param 参数
     * @return @return {@link Object }
     * @author jp
     * @date 2024/01/29 17:39
     */
    Object pageTemplate(ListTemplateQueryDTO param);
}
